package com.sunwayhorizo.health.business.dto.patad.empi;

import com.sunwayhorizo.health.business.dto.DictionaryDTO;
import com.sunwayhorizo.health.common.validateGroups.NewDeptTransfer;
import com.sunwayhorizo.health.common.validateGroups.NewEmployee;
import com.sunwayhorizo.health.common.validateGroups.NewReceiving;

import java.io.*;
import org.hibernate.validator.constraints.*;

/*******************************************
 * 描述:患者基本信息实体类Dto
 * <p>
 * 版权所有: horizo
 * <p>
 * 创建者: jinzw
 * <p>
 * 创建日期: 2010-12-09
 * <p>
 * 修改者:
 * <p>
 * 修改日期:
 * <p>
 * 修改说明:
 *******************************************/
public class PatientBaseInfoDTO implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID =1L;
	/**
	 * 主鍵(人员ID,患者ID，员工ID等)
	 */
	@NotEmpty(message = "人员id不能为空！", groups = { NewReceiving.class })
	private String personId;
	/**
	 * 患者ID(当做employee时为员工编码)
	 */
	@NotEmpty(message = "患者/员工编码不能为空！", groups = { NewDeptTransfer.class,
			NewEmployee.class })
	private String natureId;
	/**
	 * 姓名
	 */
	@NotEmpty(message = "患者姓名不能为空！", groups = { NewEmployee.class })
	private String natureName;
	/**
	 * 拼音码 简拼
	 */
	private String pinyinCode;

	/**
	 * 五笔码
	 */
	private String wubiCode;

	/**
	 * 拼音码 全拼
	 */
	private String fullSpellCode;

	/**
	 * 出生日期
	 */
//	@NotEmpty(message = "患者生日不能为空！", groups = { NewEmployee.class })
	private String natureBirthdate;

	/**
	 * 年龄(自己计算)
	 */
	private String natureAge;

	/**
	 * 婚史
	 */
	private String marryFlag;

	/**
	 * 籍贯
	 */
	private String nativePlace;

	/**
	 * 地址详细
	 */
	private String societyHomeAddress;

	/**
	 * 邮编
	 */
	private String societyHomeCode;

	/**
	 * 手机
	 */
	private String societyMobile;

	/**
	 * 电话
	 */
	private String societyPhone;

	/**
	 * E-mail
	 */
	private String societyEmail;

	/**
	 * 患者照片，接收格式暂定为：jpg，gif，png
	 */
	private byte[] natureImg = new byte[] {};
	/**
	 * 患者描述，接收格式暂定为：txt
	 */
	private String natureDescription;
	/**
     * 医生签名图片
     */
    private byte[] signImg = new byte[] {};

	/**
	 * 性别数据字典DTO
	 */
	private DictionaryDTO natureSexDic = new DictionaryDTO();

	/**
	 * 国籍数据字典DTO
	 */
	private DictionaryDTO natureNationalityDic = new DictionaryDTO();

	/**
	 * 民族数据字典DTO
	 */
	private DictionaryDTO natureNationDic = new DictionaryDTO();

	/**
	 * 身份数据字典DTO
	 */
	private DictionaryDTO natureIdentityDic = new DictionaryDTO();

	/**
	 * 职业数据字典DTO
	 */
	private DictionaryDTO societyWorkDic = new DictionaryDTO();

	/**
	 * 婚史字典DTO
	 */
	private DictionaryDTO merryFlagDic = new DictionaryDTO();

	/**
	 * 职务数据字典DTO
	 */
	private DictionaryDTO dutyDic = new DictionaryDTO();

	/**
	 * 职称数据字典DTO
	 */
	private DictionaryDTO titleDic = new DictionaryDTO();

	

	public String getPersonId() {
		return personId;
	}

	public void setPersonId(String personId) {
		this.personId = personId;
	}

	public String getNatureId() {
		return natureId;
	}

	public void setNatureId(String natureId) {
		this.natureId = natureId;
	}

	public String getNatureName() {
		return natureName;
	}

	public void setNatureName(String natureName) {
		this.natureName = natureName;
	}

	public String getPinyinCode() {
		return pinyinCode;
	}

	public void setPinyinCode(String pinyinCode) {
		this.pinyinCode = pinyinCode;
	}

	public String getWubiCode() {
		return wubiCode;
	}

	public void setWubiCode(String wubiCode) {
		this.wubiCode = wubiCode;
	}

	public String getFullSpellCode() {
		return fullSpellCode;
	}

	public void setFullSpellCode(String fullSpellCode) {
		this.fullSpellCode = fullSpellCode;
	}

	public String getNatureBirthdate() {
		return natureBirthdate;
	}

	public void setNatureBirthdate(String natureBirthdate) {
		this.natureBirthdate = natureBirthdate;
	}

	public String getNatureAge() {
		return natureAge;
	}

	public void setNatureAge(String natureAge) {
		this.natureAge = natureAge;
	}

	public String getSocietyHomeAddress() {
		return societyHomeAddress;
	}

	public void setSocietyHomeAddress(String societyHomeAddress) {
		this.societyHomeAddress = societyHomeAddress;
	}

	public String getSocietyHomeCode() {
		return societyHomeCode;
	}

	public void setSocietyHomeCode(String societyHomeCode) {
		this.societyHomeCode = societyHomeCode;
	}

	public String getSocietyMobile() {
		return societyMobile;
	}

	public void setSocietyMobile(String societyMobile) {
		this.societyMobile = societyMobile;
	}

	public String getSocietyPhone() {
		return societyPhone;
	}

	public void setSocietyPhone(String societyPhone) {
		this.societyPhone = societyPhone;
	}

	public String getSocietyEmail() {
		return societyEmail;
	}

	public void setSocietyEmail(String societyEmail) {
		this.societyEmail = societyEmail;
	}

	public byte[] getNatureImg() {
		return natureImg;
	}

	public void setNatureImg(byte[] natureImg) {
		this.natureImg = natureImg;
	}

	public String getNatureDescription() {
		return natureDescription;
	}

	public void setNatureDescription(String natureDescription) {
		this.natureDescription = natureDescription;
	}

	public String getMarryFlag() {
		return marryFlag;
	}

	public void setMarryFlag(String marryFlag) {
		this.marryFlag = marryFlag;
	}

	public String getNativePlace() {
		return nativePlace;
	}

	public void setNativePlace(String nativePlace) {
		this.nativePlace = nativePlace;
	}

	public DictionaryDTO getNatureSexDic() {
		return natureSexDic;
	}

	public void setNatureSexDic(DictionaryDTO natureSexDic) {
		this.natureSexDic = natureSexDic;
	}

	public DictionaryDTO getNatureNationalityDic() {
		return natureNationalityDic;
	}

	public void setNatureNationalityDic(DictionaryDTO natureNationalityDic) {
		this.natureNationalityDic = natureNationalityDic;
	}

	public DictionaryDTO getNatureNationDic() {
		return natureNationDic;
	}

	public void setNatureNationDic(DictionaryDTO natureNationDic) {
		this.natureNationDic = natureNationDic;
	}

	public DictionaryDTO getNatureIdentityDic() {
		return natureIdentityDic;
	}

	public void setNatureIdentityDic(DictionaryDTO natureIdentityDic) {
		this.natureIdentityDic = natureIdentityDic;
	}

	public DictionaryDTO getSocietyWorkDic() {
		return societyWorkDic;
	}

	public void setSocietyWorkDic(DictionaryDTO societyWorkDic) {
		this.societyWorkDic = societyWorkDic;
	}

	public DictionaryDTO getDutyDic() {
		return dutyDic;
	}

	public void setDutyDic(DictionaryDTO dutyDic) {
		this.dutyDic = dutyDic;
	}

	public DictionaryDTO getTitleDic() {
		return titleDic;
	}

	public void setTitleDic(DictionaryDTO titleDic) {
		this.titleDic = titleDic;
	}

	@Override
	public String toString() {
		return "PatientBaseInfoDTO [\n主键=" + personId + ",\n 患者ID=" + natureId
				+ ",\n 姓名=" + natureName + ",\n 拼音Code=" + pinyinCode
				+ ",\n 五笔Code=" + wubiCode + ",\n 拼音码全拼=" + fullSpellCode
				+ ",\n 生日=" + natureBirthdate + ",\n 年龄=" + natureAge
				+ ",\n 婚史=" + merryFlagDic + ",\n 籍贯=" + nativePlace
				+ ",\n 家庭地址="
				+ societyHomeAddress
				+ ",\n 邮编="
				+ societyHomeCode
				+ ",\n 手机="
				+ societyMobile
				+ ",\n 电话="
				+ societyPhone
				+ ",\n Email="
				+ societyEmail
				// + ",\n 照片="
				// + Arrays.toString(natureImg)
				+ ",\n 描述=" + natureDescription + ",\n 性别=" + natureSexDic
				+ ",\n 国籍=" + natureNationalityDic + ",\n 民族="
				+ natureNationDic + ",\n 身份=" + natureIdentityDic + ",\n 职业="
				+ societyWorkDic + ",\n 职务=" + dutyDic + ",\n 职称=" + titleDic
				+ "\n]";
	}

	public void setMerryFlagDic(DictionaryDTO merryFlagDic) {
		this.merryFlagDic = merryFlagDic;
	}

	public DictionaryDTO getMerryFlagDic() {
		return merryFlagDic;
	}

	public byte[] getSignImg() {
		return signImg;
	}

	public void setSignImg(byte[] signImg) {
		this.signImg = signImg;
	}

}
